package com.chenziwen.scala.chapter05

object Scala02_Object {
  def main(args: Array[String]): Unit = {
    // 此处创建对象不需要使用new关键字，而是直接增加小括号，在执行时，会自动调用伴生类对象中的apply方法。返回伴生类实例对象
    val stu = Student()
    // com.chenziwen.scala.chapter05.Student@ea4a92b
    println(stu)
  }
}

class Student private(name: String = "default") {

}

object Student {
  // apply方法，因为伴生对象可以处理静态资源，所以完全可以通过伴生对象提供的apply方法，构建对象对伴生类进行处理
  // 该方法的方法名必须是apply
  // 此处也可以采用单例模式实现
  def apply(): Student = new Student()

  def apply(name: String): Student = new Student(name)
}
